Wczytanie bibliotek

library(dplyr, warn.conflicts = FALSE)
library(tidyr, warn.conflicts = FALSE)
library(ggplot2, warn.conflicts = FALSE)
library(readxl, warn.conflicts = FALSE)
library(plotly, warn.conflicts = FALSE)

Zapewnienie powtarzalności

set.seed(997)

Wczytanie danych

bitcoin_diff <- read.csv("data/Bitcoin/BCHAIN-DIFF.csv", header=TRUE)

bitcoin_hrate <- read.csv("data/Bitcoin/BCHAIN-HRATE.csv", header=TRUE)

bitcoin_mkpru <- read.csv("data/Bitcoin/BCHAIN-MKPRU.csv", header=TRUE)

bitcoin_trvou <- read.csv("data/Bitcoin/BCHAIN-TRVOU.csv", header=TRUE)

currency_exchange_rates <- read.csv("data/CurrencyExchangeRates.csv", header=TRUE)
#currency_exchange_rates[,1] <- as.POSIXct(strptime(currency_exchange_rates[,1], "%Y-%m-%d"))

gold_prices <- read.csv("data/Gold_prices.csv", header=TRUE, col.names = c("date", "USD_AM", "USD_PM", "GBP_AM",  "GBP_PM",  "EURO_AM", "EURO_PM"))

s_p_composite <- read.csv("data/S&PComposite.csv", header=TRUE)

world_development_indicators <- read_excel("data/World_Development_Indicators.xlsx", sheet="Data", na=c(".."))

Czyszczenie danych

bitcoin_diff <- bitcoin_diff %>% 
  mutate(Date=as.POSIXct(strptime(Date, "%Y-%m-%d"))) %>%
  rename(date=Date, value=Value)

bitcoin_hrate <- bitcoin_hrate %>% 
  mutate(Date=as.POSIXct(strptime(Date, "%Y-%m-%d"))) %>%
  rename(date=Date, value=Value)

bitcoin_mkpru <- bitcoin_mkpru %>% 
  mutate(Date=as.POSIXct(strptime(Date, "%Y-%m-%d"))) %>%
  rename(date=Date, value=Value)

bitcoin_trvou <- bitcoin_trvou %>% 
  mutate(Date=as.POSIXct(strptime(Date, "%Y-%m-%d"))) %>%
  rename(date=Date, value=Value)

currency_exchange_rates <-currency_exchange_rates %>%
  select(Date, Chinese.Yuan, Australian.Dollar, Russian.Ruble, Canadian.Dollar) %>%
  rename(date=Date, Yuan=Chinese.Yuan, `Dolar australijski`=Australian.Dollar, Rubel=Russian.Ruble, `Dolar kanadyjski`=Canadian.Dollar) %>%
  mutate(`Dolar australijski`=1/`Dolar australijski`) %>%
  gather(waluta, value, Yuan:`Dolar kanadyjski`) %>%
  mutate(waluta=as.factor(waluta), date=as.POSIXct(strptime(date, "%Y-%m-%d")))  %>%
  filter(!is.na(value))

gold_prices <- mutate(gold_prices,USD=f(USD_AM,  USD_PM), GBP=f(GBP_AM, GBP_PM), EURO=f(EURO_AM, EURO_PM)) %>% 
  select(date, USD, GBP, EURO) %>%
  gather(waluta, value, USD:EURO) %>%
  mutate(waluta=as.factor(waluta), date=as.POSIXct(strptime(date, "%Y-%m-%d")))  %>%
  filter(!is.na(value))

s_p_composite <- gather(s_p_composite, indicator, value, S.P.Composite:Cyclically.Adjusted.PE.Ratio) %>%
  mutate(indicator=as.factor(indicator), Year=as.POSIXct(cut(as.POSIXct(strptime(Year, "%Y-%m-%d")), "month"))) %>%
  rename(date=Year, `wskaźnik`=indicator) %>%
  filter(!is.na(value))

world_development_indicators <- gather(world_development_indicators,date, value, "1970 [YR1970]":"2020 [YR2020]") %>% 
  mutate(year=as.POSIXct(strptime(sprintf('%s-01-01',substr(date, 1, 4)), "%Y-%m-%d"))) %>% 
  rename(country_name=`Country Name`, `wskaźnik`=`Series Name`) %>%
  mutate(country_name=as.factor(country_name), `wskaźnik`=as.factor(`wskaźnik`)) %>%
  filter(!is.na(value)) %>%
  select(country_name, `wskaźnik`, year, value)

Podsumowanie rozmiaru zbioru, podstawowe statystyki i analiza atrybutów

Bitcoin

Trudność znalezienia nowego bloku

Statystki

date value
Min. :2009-01-02 00:00:00 Min. :0.000e+00
1st Qu.:2012-03-11 18:00:00 1st Qu.:1.689e+06
Median :2015-05-20 12:00:00 Median :4.881e+10
Mean :2015-05-20 12:24:33 Mean :3.664e+12
3rd Qu.:2018-07-28 06:00:00 3rd Qu.:5.364e+12
Max. :2021-10-05 00:00:00 Max. :2.505e+13

Zbiór zawiera 4660 obserwacji reprezentujących trudność znalezienia nowego bloku podczas kopania kryptowaluty z okresu między 2009-01-02 a 2021-10-05. Na poniższym wykresie widać, że wartości zaczęły gwałtownie rosnąć od 2017 roku z wyraźniejszymi spadkami w roku 2019 i 2021.

Szacowana liczba tera haszy na sekundę wykonywanych przez sieć Bitcoina

Statystyki

date value
Min. :2009-01-03 00:00:00 Min. : 0
1st Qu.:2012-03-12 12:00:00 1st Qu.: 12
Median :2015-05-21 00:00:00 Median : 356089
Mean :2015-05-21 00:24:32 Mean : 26458258
3rd Qu.:2018-07-28 12:00:00 3rd Qu.: 38265984
Max. :2021-10-05 00:00:00 Max. :198514006

Zbiór zawiera 4659 obserwacji przedstawiających liczbę tera haszy na sekundę wykonywanych przez sieć Bitcoina w okresie od 2009-01-03 do 2021-10-05. Na poniższym wykresie widać podobny trend jak w przypadku trudności znalezienia nowego bloku. Potwierdza to współczynnik korelacji Pearsona, który wynosi 0.989704.

Średnia wartość w USD

Statystyki

date value
Min. :2009-01-02 00:00:00 Min. : 0.0
1st Qu.:2012-03-12 00:00:00 1st Qu.: 7.2
Median :2015-05-21 00:00:00 Median : 431.9
Mean :2015-05-21 00:24:32 Mean : 5141.2
3rd Qu.:2018-07-29 00:00:00 3rd Qu.: 6499.1
Max. :2021-10-06 00:00:00 Max. :63554.4

Zbiór zaweierający wartości Bitcoina w dolarach zawiera 4661 obserwacji. W okresie od 2009-01-02 do 2021-10-06 najwyższa warość Bitocina wyniosła 6.355444^{4} dolarów, a średnia 5141.23 dolarów. Duży spadek, który można zaobserwować w połowie 2021 roku spowodowany został zapowiedziami Chińskiego rządu dotyczącymi regulacji odnośnie kryptowalut oraz tweetami Elona Muska na temat zablokowania możliwości płacenia za samochody marki Tesla w tej kryptowalucie czy sprzedaży przez tę firmę sprzedaży posiadanych Bitcoinów o wartości 1,5 mld dolarów (https://pl.wikipedia.org/wiki/Bitcoin#Rynek). Wykres wygląda podobnie do wykresu trudności znaleziania nowego bloku i szacowanej liczby tera haszy na sekunde co potwierdzają wartości współczynnika korelacji Pearsona, które wynoszą odpowiednio 0.82 i 0.82.

Korelację między trudnością znalezienia nowego bloku, szacowaną liczbą tera haszy na sekundę i wartością Bitcoina w dolarach można pokazać na jednym wykresie. W celu czytelenego pokazania wszystkich zmiennych wartości poszczególnych miar zostały znormalizowane.

Wartość w USD wolumenu obrotu

Statystyki

date value
Min. :2009-01-02 00:00:00 Min. : 0
1st Qu.:2012-03-12 00:00:00 1st Qu.: 194787
Median :2015-05-21 00:00:00 Median : 6823690
Mean :2015-05-21 00:24:32 Mean : 146728050
3rd Qu.:2018-07-29 00:00:00 3rd Qu.: 148443298
Max. :2021-10-06 00:00:00 Max. :5352015516

Zbiór zaweierający wartość obrotu Bitcoina wyrażony w dolarach zawiera 4661 obserwacji. Najwyższy obrót o wartości 5.3520155^{9} USD odnotowano dnia 2017-12-22. Korelacja tej miary z wartością Bitcoina w dolarach wynosi 0.53 a z liczbą tera haszy na sekundę 0.39. Obie te korelacje są małe.

Cena złota

waluta minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
EURO 237.02 1736.15 797.25 413.92 1999-01-04 2021-09-29
GBP 14.48 1566.94 370.78 353.31 1968-01-02 2021-09-29
USD 34.76 2058.15 575.07 490.06 1968-01-02 2021-09-29

Kursy walut

Statystyki

waluta minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
Dolar australijski 0.90 2.07 1.35 0.26 1995-01-04 2018-05-01
Dolar kanadyjski 0.92 1.61 1.27 0.19 1995-01-03 2018-04-30
Rubel 23.13 83.59 36.91 14.01 2003-05-05 2018-04-30
Yuan 6.09 8.75 7.32 0.86 1995-01-31 2018-05-02

Wyniki S&P Composite

Wskaźnik cen towarów i usług konsumpcyjnych

Statystyki

wskaźnik minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
CPI 6.28 273.98 62.39 76.26 1871-01-01 2021-10-01

Indeks CPI to średnia ważona towarów i usług kupowanych przez przeciętne gospodarstwo domowe (https://pl.wikipedia.org/wiki/Wska%C5%BAnik_cen_towar%C3%B3w_i_us%C5%82ug_konsumpcyjnych). W latach 1871-01-01 do 2021-10-01 wahał się od 6.2796132 do 273.98325. Na wykresie widać, że po roku 1973 nastąpił gwałtowniejszy wzrost wartości tego indeksu.

Cyclically adjusted price-to-earnings ratio

Statystyki

wskaźnik minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
Cyclically.Adjusted.PE.Ratio 4.78 44.2 17.21 7.05 1881-01-01 2021-10-01

Powyższy wskaźnik pomaga w ocenie czy ceny akcji na giełdzie są zawyżone. Najwyższa jego wartość wyniosła 44.1979398. Miało to miejsce w 1999 roku. Był to okres “bański internetowej” kiedy to przeceniane były wartości firm prowadzących działalność w internecie (https://pl.wikipedia.org/wiki/Ba%C5%84ka_internetowa). Inna wysoka wartość widoczna na wykresie to okres początku wielkiego kryzysu (https://pl.wikipedia.org/wiki/Czarny_wtorek https://www.parkiet.com/Felietony/309199946-Co-podpowiada-wskaznik-Shiller-PE.html?preview=&remainingPreview=&grantedBy=preview&).

Dywidendy

Statystyki

wskaźnik minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
Dividend 0.18 59.68 6.73 12.07 1871-01-01 2021-06-01
Real.Dividend 5.45 63.51 17.50 11.11 1871-01-01 2021-06-01

Wartość dywident w okresie czasu, który obejmują dane wykazują trend wzrostowy z jedyn wyraźnym spadkiem w latach 2007 - 2009. Wartości faktycznych dywident przez cały okres była większa niż wartość dywident i wykazywała się większymi wahaniami.

Zysk

Statystyki

wskaźnik minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
Earnings 0.16 158.74 15.37 28.93 1871-01-01 2021-06-01
Real.Earnings 4.58 159.50 34.91 29.84 1871-01-01 2021-06-01

Podobnie jak w przypadku dywident faktyczny zysk wykazuje się większymi wahaniami i większą wartością niż zysk.

Long Interest Rate

Statystyki

wskaźnik minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
Long.Interest.Rate 0.62 15.32 4.5 2.31 1871-01-01 2021-10-01

Faktyczna cena

Statystyki

wskaźnik minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
Real.Price 73.9 4477.2 621.99 733.09 1871-01-01 2021-10-01

S P composite

Statystyki

wskaźnik minimalna wartość maksymalna wartość średnia wartość odchylenie standardowe dane od dane do
S.P.Composite 2.73 4493.28 327.97 685.03 1871-01-01 2021-10-01

Wskażniki rozwoju na świecie

Statystyki

country_name wskaźnik year value
Mexico : 7674 Population, total : 10576 Min. :1970-01-01 00:00:00 Min. : -481321056610000
United Kingdom: 7540 Population growth (annual %) : 10573 1st Qu.:1988-01-01 00:00:00 1st Qu.: 6
Korea, Rep. : 7505 Rural population (% of total population): 10548 Median :2000-01-01 00:00:00 Median : 41
Peru : 7505 Urban population (% of total population): 10548 Mean :1998-05-11 04:37:06 Mean : 351647861972
Turkey : 7505 Rural population : 10525 3rd Qu.:2010-01-01 00:00:00 3rd Qu.: 9240
Costa Rica : 7474 Urban population : 10525 Max. :2020-01-01 00:00:00 Max. :10211700000000000
(Other) :1084125 (Other) :1066033 NA NA

Zbiór opisuje 201 państw oraz cały świat oraz 6 kategori wysokości przychdu przy pomocy 213 wskaźników w latach 1970-2020.

Korelacje

Przy szukaniu korelacji…

Korelacje pomiędzy ceną złota w dolarach i wkażnikami rozwoju

Świat

Total greenhouse gas emissions (kt of CO2 equivalent) do ceny zlota wynosi 0.93

Net official development assistance received (current US$) do ceny zlota wynosi 0.92

Imports of goods and services (current US$) do ceny zlota wynosi 0.92

Gross national expenditure (current US$) do ceny zlota wynosi 0.91

Gross domestic savings (current US$) do ceny zlota wynosi 0.92

GDP (current US$) do ceny zlota wynosi 0.91

Exports of goods and services (current US$) do ceny zlota wynosi 0.92

CO2 emissions from solid fuel consumption (kt) do ceny zlota wynosi 0.92

CO2 emissions (kt) do ceny zlota wynosi 0.91

Goods imports (BoP, current US$) do ceny zlota wynosi 0.9

Individuals using the Internet (% of population) do ceny zlota wynosi 0.9

USA

Net primary income (Net income from abroad) (current US$) do ceny zlota wynosi 0.95

Net primary income (Net income from abroad) (current LCU) do ceny zlota wynosi 0.95

Exports of goods and services (current US$) do ceny zlota wynosi 0.9

Service exports (BoP, current US$) do ceny zlota wynosi 0.9

Net primary income (BoP, current US$) do ceny zlota wynosi 0.94

Net primary income (Net income from abroad) (constant LCU) do ceny zlota wynosi 0.94

Korelacje pomiędzy ceną złota w dolarach i wkażnikami z S P Composite

S.P.Composite do ceny zlota wynosi 0.82

Dividend do ceny zlota wynosi 0.88

Earnings do ceny zlota wynosi 0.86

CPI do ceny zlota wynosi 0.83

Real.Dividend do ceny zlota wynosi 0.83

Real.Earnings do ceny zlota wynosi 0.78

Korelacje pomiędzy ceną złota w dolarach i kursami wybraanych walut

Korelacja kursu dolar/Yuan do ceny zlota wynosi -0.95

Korelacja kursu dolar/Dolar kanadyjski do ceny zlota wynosi -0.76

Korelacje pomiędzy ceną złota w dolarach i wskaźnikami dla Bitcoina

bitcoin_diff do ceny zlota wynosi 0.39

bitcoin_hrate do ceny zlota wynosi 0.38

bitcoin_mkpru do ceny zlota wynosi 0.34

bitcoin_trvou do ceny zlota wynosi 0.25

Przewidywanie cen złota

Regresor

Wyniki

Analiza atrybutów najlepszego znalezionego modelu